home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Power 1997 December
/
MACPOWER-1997-12.ISO.7z
/
MACPOWER-1997-12.ISO
/
AMUG
/
PROGRAMMING
/
Raven 1.2.sit
/
Raven 1.2
/
Source
/
Foundation
/
OS
/
ZEvent.cpp
< prev
next >
Wrap
Text File
|
1996-11-29
|
4KB
|
156 lines
/*
* File: ZEvent.cpp
* Summary: Classes that encapsulate an EventRecord.
* Written by: Jesse Jones
*
* Copyright ゥ 1996 Jesse Jones.
* For conditions of distribution and use, see copyright notice in ZTypes.h
*
* Change History (most recent first):
*
* <-> 8/01/96 JDJ Created
*/
#include <ZEvent.h>
#include <LowMem.h>
#include <ZMiscUtils.h>
#include <ZNumbers.h>
// ===================================================================================
// class TEvent
// ===================================================================================
//---------------------------------------------------------------
//
// TEvent::~TEvent
//
//---------------------------------------------------------------
TEvent::~TEvent()
{
}
//---------------------------------------------------------------
//
// TEvent::TEvent ()
//
//---------------------------------------------------------------
TEvent::TEvent()
{
mTimeStamp = ::GetMilliSeconds();
}
//---------------------------------------------------------------
//
// TEvent::TEvent (EventRecord)
//
//---------------------------------------------------------------
TEvent::TEvent(const EventRecord& event)
{
mEventRecord = event;
mGlobalPos = event.where;
mTimeStamp = ::GetMilliSeconds();
}
#pragma mark -
// ========================================================================================
// class TMouseEvent
// ========================================================================================
//---------------------------------------------------------------
//
// TMouseEvent::~TMouseEvent
//
//---------------------------------------------------------------
TMouseEvent::~TMouseEvent()
{
}
//---------------------------------------------------------------
//
// TMouseEvent::TMouseEvent ()
//
//---------------------------------------------------------------
TMouseEvent::TMouseEvent()
{
mEventRecord.what = mouseDown;
mClickCount = 1;
}
//---------------------------------------------------------------
//
// TMouseEvent::TMouseEvent (EventRecord)
//
//---------------------------------------------------------------
TMouseEvent::TMouseEvent(const EventRecord& event, long clickCount) : TEvent(event)
{
ASSERT(event.what == mouseDown || event.what == mouseUp || event.what == osEvt);
ASSERT(clickCount >= 0);
mClickCount = clickCount;
}
#pragma mark -
// ========================================================================================
// class TKeyEvent
// ========================================================================================
//---------------------------------------------------------------
//
// TKeyEvent::~TKeyEvent
//
//---------------------------------------------------------------
TKeyEvent::~TKeyEvent()
{
}
//---------------------------------------------------------------
//
// TKeyEvent::TKeyEvent ()
//
//---------------------------------------------------------------
TKeyEvent::TKeyEvent()
{
mEventRecord.what = keyDown;
}
//---------------------------------------------------------------
//
// TKeyEvent::TKeyEvent (EventRecord)
//
//---------------------------------------------------------------
TKeyEvent::TKeyEvent(const EventRecord& event) : TEvent(event)
{
ASSERT(event.what == keyDown || event.what == keyUp || event.what == autoKey);
}
//---------------------------------------------------------------
//
// TKeyEvent::GetRepeatFreq [static]
//
//---------------------------------------------------------------
MilliSecond TKeyEvent::GetRepeatFreq()
{
// A note on LMGetKeyThresh: the key repeat rate typically ranges
// from 12 ticks (short) to 40 ticks (long). However, if key repeat
// is turned off, LMGetKeyThresh returns SHRT_MAX. To prevent an
// fTimeOutInterval that high, we bound it at 255 ticks (about 4
// seconds).
long ticks = Min(LMGetKeyThresh(), (short) 255);
return ticks*1000L/60;
}